A data storage system may provide various backup and recovery tools that are crucial for enterprise level network clients. Customers may rely on backup systems to efficiently backup and recover data in the event of user error, data loss, system outages, hardware failure, or other catastrophic events to allow business applications to remain in service or quickly come back up to service after a failure condition or an outage. When a backup system restores data, in order to improve performance, data is often read ahead using a cache. However, a read ahead technique may not always be optimal in various scenarios. For example, data to be restored may not always be stored in a sequential manner, and instead, may be stored in a random manner. In such scenarios, reading ahead may be unnecessary and hinder performance. Moreover, data stored using a service may require fees based on the amount of data accessed, and accordingly, inefficiently accessing data may incur unnecessary costs. Accordingly, there is a continued need to improve techniques for managing a data cache.